Benjy's Blog

「All In One 主机」— 硬件规划与 PVE 环境

2025-06-07

借着之前使用群辉的由头,也是玩了 3 年 NAS 了。最近越发觉得群辉慢,有一些想法虽然基于群辉上的 Docker 可以做,但是就是慢,本身群辉的性能也不高,拓展性还低,趁着最近电脑降价比较多,装完双系统台式机后,准备再用手头的零件攒一台 All In One 主机。手头有台惠普 EliteDesk 800 G5 SFF,又淘了一些二手硬件,正好拿来折腾。有群辉的经验,装这个轻轻松松。准备用 PVE 做虚拟化基座,装 iKuai 软路由、OpenWrt、黑群晖、和飞牛 OS。


硬件配置

配件 型号 备注
机器 惠普 EliteDesk 800 G5 SFF 小机箱,功耗低
CPU Intel Core i5-9500 6 核 6 线程,支持硬件虚拟化
内存 海力士 DDR4 8GB × 4 = 32GB 四通道满配
NVMe 1 西数 1TB ZFS RAID1 系统盘
NVMe 2 铠侠 1TB ZFS RAID1 系统盘
HDD 1 希捷 1TB 2.5 寸机械 群晖 SHR 存储池
HDD 2 希捷 1TB 2.5 寸机械 群晖 SHR 存储池
HDD 3 西数 1TB 3.5 寸机械 冷备盘
显卡 AMD RX550 半高 飞牛 OS 硬件转码
网卡 Intel i226-v 双口 2.5G PCIe 软路由专用

主板有两条NVME插槽,四个内存插槽,四个PCIE插槽(x16、x4、x1、x1),三个机械硬盘盘位,除了手头的硬件,从网上淘了一块2.5G网卡,一块显卡,一根固态硬盘,两条DDR4内存条,基本拉满了,机箱还能再拓展几个SATA位置,但好像没什么需求,暂时收手,待机功耗也是整机考量的标准。


整体规划

网络设计

这台机器额外加了一块 Intel i226-v 双口 2.5G 网卡,主板自带一个千兆口,合计三个物理网口,职责划分如下:

虚拟网桥 绑定物理网口 职责
vmbr0 主板千兆口 PVE 管理专用,配置用,平时不接线
vmbr1 i226-v 口1 iKuai WAN,接上层路由器
vmbr2 i226-v 口2 iKuai LAN,2.5G 内网,接 WiFi6 路由器

网络拓扑:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
互联网

上层路由器(192.168.124.x)
│ │ 主板千兆口 / vmbr0
│ └── PVE / 群晖 / 飞牛 / OpenWrt ← 仅需要管理时连接
│ i226-v 口1 / vmbr1
└── iKuai WAN
│ i226-v 口2 / vmbr2(2.5G)
└── iKuai LAN 192.168.11.1

├── WiFi6 路由器(AP 模式)← 家用设备日常连这里
├── 黑群晖 192.168.11.11
├── OpenWrt 192.168.11.13
└── 飞牛 OS 192.168.11.14

设计要点

  • 两个网段的设计:由于设备并不会完全固定在一个网络中使用,因此外网的网段可能有变化,所以通过内网来固定设备地址IP,同时也跳过网口卡主板千兆的问题,本质上两个网段都可以访问设备,这样分开主要还是为了内网提速和软路由功能。
  • vmbr0 作为备用管理入口:主板千兆口平时不接线,只在配置 PVE 或者内网出问题的时候临时接上网线从上层路由通过 124.x 地址访问。群晖、飞牛、OpenWrt 都有虚拟网桥挂在 vmbr0 上,因此插上网线后这些 VM 都可以通过 124.x 地址直接访问,不经过 iKuai,这些地址都在上层路由器通过静态IP配置,方便从路由器定位设备。
  • 日常访问走 11 网段:家里设备连 WiFi6 路由器(AP 模式),流量经过 iKuai LAN,通过 11.x 地址访问各 VM,走 2.5G 链路,速度快且不依赖管理网线。
  • iKuai 管内网:iKuai 有 vmbr0(管理外网)、vmbr1(WAN)和 vmbr2(LAN)三块虚拟网桥,在内网中提供软路由的功能,同时设置DNS和DHCP服务指向OpenWRT,对内网流量做二次加工(去广告,科学上网)。

各设备 IP 分配汇总:

设备 124.x(管理,插网线时可用) 11.x(日常内网) 常用访问入口
PVE 192.168.124.10 https://192.168.124.10:8006
iKuai 192.168.124.12 192.168.11.1 http://192.168.11.1:8888
黑群晖 192.168.124.11 192.168.11.11 http://192.168.11.11:5000
OpenWrt 192.168.124.13 192.168.11.13 http://192.168.11.13
飞牛 OS 192.168.124.14 192.168.11.14 http://192.168.11.14:5666
WiFi6 路由器 192.168.11.2(静态) http://192.168.11.2

iKuai 的 DHCP 地址池从 192.168.11.100 开始,.2.99 留给固定 IP 设备。

存储设计

考虑到容灾备份,机器上除了备份盘全部是 RAID1 组合,同时群辉作为存算分离的管理器通过 SMB 向外提供存储空间。
整个系统的存储分三层,分别对应底层系统(NVMe),存算分离提供者(群辉 SATA + QEMU SSD),应用层(SMB 共享或 QEMU):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
┌──────────────────────────────────────────────────┐
│ PVE 系统盘(不占 SATA 口) │
│ 西数 1T NVMe + 铠侠 1T NVMe → ZFS RAID1 镜像 │
│ 任意一块损坏,系统照常运行;ZFS 总可用约 930GB │
├──────────────────────────────────────────────────┤
│ 群晖(直通的SATA控制器 + ZFS 提供的QEMU虚拟盘) │
│ 1、250GB 虚拟盘 → 群晖 Basic 卷 │
│ 本质是 NVMe RAID1 空间,兼顾速度与容错 │
│ 2、希捷 1T 2.5寸机械 × 2 → SHR 存储池 │
│ 主力存储,约 1T 可用,单盘容错 │
│ 3、西数 1T 3.5 寸机械 → 备份盘 │
│ 给各个虚拟机做定期备份用 │
│ 以上三块存储空间通过 SMB 为局域网提供网络存储 │
│ 4、30GB 虚拟盘 × 2 → SHR 读写缓存盘 │
│ 这两块高速盘为 1T 机械硬盘组成的 SHR 提供读写加速 │
├──────────────────────────────────────────────────┤
│ 飞牛 OS 系统盘(从 ZFS 切出,NVMe 速度) │
│ 200GB 虚拟盘:64GB 系统SSD + 136GB 内部SSD │
│ 飞牛系统状态完全在 NVMe ZFS 上,稳定快速 │
│ 挂载群辉提供的三块存储空间,针对场景区分使用 │
└──────────────────────────────────────────────────┘

ZFS RAID1(两块 1TB NVMe)实际可用约 930GB(扣除 ZFS 元数据开销约 5%),由于本质上是共享内存,所以非极限场景分配超额也可以,分配明细:

用途 大小
飞牛 OS 虚拟盘 200 GB
群晖共享 SSD 250 GB
群晖 SSD 缓存 × 2 60 GB
群晖系统盘 32 GB
iKuai 系统盘 8 GB
OpenWrt 系统盘 8 GB
PVE 系统本身 ~70 GB
已分配合计 ~628 GB
ZFS 性能预留(建议 20%) ~186 GB
剩余可自由支配 ~116 GB

存算分离设计

群辉生态成熟,且我已稳定运行多年,所以由群辉在内网作为存算分离的提供者,提供 QEMU 级别的 SSD 高速存储空间(本质是 NVMe 的 RAID1)和有两块读写加速的 SHR 机械硬盘组成的普通空间。飞牛 OS 影音和媒体服务更好用,两者通过 SMB 协议打通后,数据只存一份在群晖,飞牛容器直接读写,不重复占空间,且方便统一备份。

1
2
3
4
5
黑群晖(存储节点)                                飞牛 OS(计算节点)
──────────────── ────────────────
SHR 存储池(机械硬盘 + 30G读写加速) 视频文件,图片文件
SSD (QEMU 模拟 SSD) <── SMB 挂载 系统文件,部分应用文件,下载缓存
备份盘(机械硬盘) 定期备份

一、下载 PVE 镜像 & 制作引导 U 盘

在浏览器打开 https://www.proxmox.com/en/downloads,下载最新 ISO(PVE 8.3,约 1.2 GB)。

引导盘用 Etcher 制作,界面简单直观,跨平台支持 Windows / macOS / Linux:

  1. 选择下载好的 PVE ISO
  2. 选择 U 盘
  3. 点击 Flash(U 盘原有数据会被清空,重要数据提前备份)

写入完成后拔出 U 盘插到目标机器的 USB 口(台式机推荐后置接口)。


二、安装 PVE

  1. 开机不断按 F12 进入启动选择,选 U 盘启动
  2. 选择 Install Proxmox VE (Graphical),回车
  3. 等待跑码阶段结束
  4. 点击 I agree 同意协议
  5. 选择安装硬盘(ZFS RAID1 关键步骤):点击右下角 Options,Filesystem 选择 zfs (RAID1),Harddisk 0 和 Harddisk 1 分别选两块 1T NVMe,点 OK 确认

    ZFS RAID1 会将两块盘做镜像,任意一块损坏数据不丢失,代价是可用空间减半。
    800 G5 SFF 要想两块 NVMe 被识别到需要在 BIOS 中关闭两个功能 配置 RAID 存储控制器和为 Intel Optane配置存储控制器

  6. 设置国家(China)、时区、键盘布局

  7. 设置 root 密码和邮箱
  8. 配置网卡、管理 IP(192.168.124.10)、网关、DNS
  9. 确认信息无误,点击 Install
  10. 安装完成后拔出 U 盘,点击 Reboot

重启后在局域网内任意浏览器访问 https://192.168.124.10:8006,用户名 root,密码为安装时设置的。

安装完成后在 Shell 中检查 ZFS 池状态:

1
zpool status

输出中 state: ONLINE 且两块盘均为 ONLINE 即表示 RAID1 正常工作。


三、优化 PVE(使用 pve_source 工具)

手敲命令容易出错,推荐用 pve_source 脚本工具,覆盖了 PVE 初始化的绝大部分必备操作。

在 PVE Web 页面打开 Shell,粘贴以下命令:

1
wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source

出现使用协议后输入 Y 回车,进入功能菜单。

后续再次调用:Shell 中输入 ./pve_source(或输入 ./pve 后按 Tab 自动补全)

3.1 更换软件源

输入 21,依次更换 PVE 软件源 + Debian 源,不知道选哪个镜像站直接选清华大学源。

执行完成后继续同样操作完成 PVE Ceph 源PVE LXC 仓库源 的更换。

3.2 更新软件包

换源完成后有两种更新方式:

  • Web 页面:点击 PVE 节点 → 更新 → 刷新 → 升级
  • 脚本工具:菜单中输入 34 分别更新软件包和系统

3.3 设置 DNS

菜单输入对应选项,或在 Web 页面:节点 → DNS → 编辑。推荐填阿里云公共 DNS:223.5.5.5 / 223.6.6.6

3.4 去除订阅弹窗

菜单输入 6,脚本自动执行。完成后在浏览器强制刷新(Ctrl+Shift+R),登录不再弹窗。

PVE 系统更新后 JS 文件会被还原,重新执行一次 ./pve_source6 即可。

3.5 美化概要信息

菜单输入 7,进入概要定制向导,选方案 1(高大全版本),可以显示 CPU 温度、硬盘温度、写入量等。


四、网络配置(创建虚拟网桥)

在 PVE Web → 节点 → 网络 中创建三个虚拟网桥:

  • vmbr0:安装时自动创建,绑定主板千兆口,配置 PVE 管理 IP 192.168.124.10,网关填上层路由器地址。群晖、飞牛、OpenWrt 也各自有一块虚拟网卡挂在这个网桥上,作为备用管理入口。
  • vmbr1:新建,桥接 i226-v 口1,不配 IP(iKuai WAN,接上层路由器)
  • vmbr2:新建,桥接 i226-v 口2,不配 IP(iKuai LAN,2.5G 内网,物理上接 WiFi6 路由器)

创建完成后点击应用配置

vmbr1 和 vmbr2 本身都不需要 IP,作为 L2 交换机由 iKuai 管理。所有内网 VM 只挂 vmbr2,通过 iKuai LAN 互联。


踩坑记录

1、VM 列表不显示 IP 地址
数据中心 → 选项 → 标记样式设定 → 树形结构选「完整」,保存后刷新即可看到 VM 旁边的 IP 标签。

2、PVE 升级后订阅弹窗复现
系统更新后 JS 文件会被还原,重新执行一次 ./pve_source6 即可。

3、PVE 无法识别 NVMe 硬盘
这个问题是这个主板的设置问题,在 BIOS 中关闭设置 配置 RAID 存储控制器和为 Intel Optane配置存储控制器,开启此功能 BIOS 会优先把控制器转给傲腾,导致 PVE 无法识别。


未完待续。

Tags: PVE